Прискорення (комп'ютерна архітектура)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

У комп'ютерній архітектурі, прискорення це процес для збільшення продуктивності між двома системами що працюють над однією проблемою. Технічно це підвищення швидкості виконання завдання на двох однакових архітектурах з різними ресурсами. Поняття прискорення побудоване на законі Амдала, який був зосереджений на паралельних обчисленнях. Проте, прискорення може бути використане у більш загальному плані, щоб показати вплив на продуктивність після будь-якого збільшення ресурсів.  

Визначення

[ред. | ред. код]

Прискорення може бути визначене для двох типів величин: очікування та пропускної здатності.[1]

Очікування архітектури є обернено пропорційним швидкості виконання поставленого завдання:

де
  • v - це швидкість виконання завдання;
  • T — це час виконання завдання;
  • W — це виконання робочого навантаження завданням.

Пропускна здатність такої архітектури є швидкість виконання завдання:

де

  • ρ — це щільність виконання;
  • A — це потужність виконання(тобто, кількість процесорів для паралельної архітектури)[1]

Затримка часто вимірюється у секундах на одиницю виконання робочого навантаження. Пропускна здатність часто вимірюється в секундах на одиницю виконання робочого навантаження. Іншою часто використовуваною одиницею вимірювання пропускної здатності є кількість інструкцій за такт. Його обернена пропорційність, кількість тактів за інструкцію, є ще одним частим блоком затримки.

Прискорення є безрозмірним і визначається по різному для кожного типу величини, таким чином воно є послідовною метрикою.

Прискорення в затримці

[ред. | ред. код]

Прискорення у затримці визначається за такою формулою:[2]

де

  • Slatency — це прискорення в затримці архітектури 2 по відношенню до архітектури 1;
  • L1 — це затримка в архітектурі 1 ;
  • L2 — це затримка в архітектурі 2.

Прискорення в затримці може бути передбачене за законом Амдаля або законом Густафсона.

Прискорення у пропускній здатності

[ред. | ред. код]

Прискорення у пропускній здатності визначається за такою формулою:[3]

де

  • Sthroughput — це прискорення у пропускній здатності архітектури 2 по відношенню до архітектури 1;
  • Q1 — це пропускна здатність архітектури 1;
  • Q2 — це пропускна здатність архітектури 2.

Приклади

[ред. | ред. код]

Використання часу виконання

[ред. | ред. код]

Ми тестуємо ефективність гілки прогнозування під час виконання програми. Спочатку, ми виконуємо програму з стандартною гілкою прогнозування в процесорі, що виконується 2,25 секунд. Далі, ми виконаємо програму з нашою модифікованою (та сподіваємося покращеною) гілкою прогнозування на тому самому процесорі, який показав час виконання 1,50 секунди. В обох випадках навантаження виконання таке саме. Використовуючи нашу формулу прискорення ми знаємо що:

Наша нова гілка прогнозування надала 1,5х прискорення порівняно з оригіналом.

Використання тактів за інструкцію та інструкцій за такт

[ред. | ред. код]

Ми також можемо використовувати прискорення у тактах за інструкцію, яке є затримкою. Спочатку, ми виконаємо програму із стандартною гілкою прогнозування, що дає 3 такти за інструкцію. Далі, ми виконаємо програму з нашою модифікованою гілкою прогнозування, яка дає 2 такти за інструкцію. В обох випадках навантаження виконання однакове та обидві архітектури не паралельні одна одній. Використовуючи формулу прискорення маємо:

Також ми можемо виміряти прискорення в інструкції за такт, яка є пропускною здатністю та обернено пропорційна такту за інструкцію. Використовуючи формулу прискорення маємо:

Ми досягли того ж прискорення 1,5х хоча вимірювали різні величини.

Додаткові деталі

[ред. | ред. код]

Нехай S буде прискоренням виконання завдання та s прискорення виконання тієї частини програми, що корисна для покращення ресурсів архітектури. Лінійне прискорення або ідеальне прискорення виходить при S=s.Коли задача виконується з лінійним прискоренням, то локальне прискорення збільшує вдвічі загальне прискорення. Як ідеальний варіант, це вважається дуже хорошою масштабованістю.

Ефективність як метрика використання ресурсів модифікованої системи визначається як:

Його величина зазвичай становить від 0 до 1. Програми з лінійним прискоренням та програми що працюють з одним процесором мають ККД 1, у той час як багато важких до розпаралелення програм мають ККД 1/ln(s), що наближено до 0, якщо кількість процесорів A=s збільшується.[1]

В технічних умовах,криві ефективності частіше використовуються для графів,ніж криві прискорення,так як

  • всі області графу корисні(коли в кривих прискорення половина місця витрачається даремно);
  • Легше побачити як добре працює вдосконалення системи;
  • Не має необхідності будувати криву "ідеального прискорення";

В маркетинговому контексті,криві прискорення використовуються частіше,в основному тому що вони йдуть вгору та вправо і, таким чином, є краще до менш інформованого.

Примітки

[ред. | ред. код]
  1. а б в Martin, Milo. Performance and Benchmarking (PDF). Архів оригіналу (PDF) за 3 грудня 2015. Процитовано 5 червня 2014.
  2. Hennessy, John L.; David A., Patterson (2012). Computer Architecture: A Quantitive Approach. Waltham, MA: Morgan Kaufmann. с. 46–47. ISBN 978-0-12-383872-8.
  3. Baer, Jean-Loup (2010). Microprocessor Architecture: From Simple Pipelines to Chip Multiprocessors. New York: Cambridge University Press. с. 10. ISBN 978-0-521-76992-1.